rm(list = ls())
library(magrittr)
library(rddapp)

# 模拟数据
x <- runif(1000, -1, 1) # [-1,1]间1000个随机数
cov <- rnorm(1000) # 标准正态分布1000个随机数
y <- 3 + 2 * x + 3 * cov + 10 * (x >= 0) + rnorm(1000) # 数据生成模式
# 断点估计
rd <- rd_est(y ~ x, t.design = "geq")
summary(rd)
# 包含协变量以改进精度
rd <- rd_est(y ~ x | cov, t.design = "geq")
summary(rd)
# 第一列返回估计采取的方法：局部线性，局部二次，局部三次，带宽等
# 第四列即为因果效应
# 

# 绘制参考变量(running variable)与结果变量图
plot(rd)
# 绘制参考变量与其他协变量的关系图
rd_cov <- rd_est(cov ~ x, t.design = "geq")
plot(rd_cov)
# 参考变量在断点是否连续的检验：估计值与0的差异不显著
dc_test(x)

# 稳健性检验
## 从-0.5至0.5绘制10个不同断点下的因果效应估计
rd_sens_cutoff(rd, seq(-.5, .5, length.out = 10))
## 带宽敏感性检验
rd_sens_bw(rd,seq(0.1,1,length.out=5))
